﻿#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//int main()
//{
//	FILE*pf=fopen("data.txt", "w");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//写
//	fputc('q', pf);
//
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	
//	fputc('q', stdout);
//	fputc('w', stdout);
//	fputc('t', stdout);
//
//	
//	return 0;
//}
//使用fgetc从标准输入流读取数据
//int main()
//{
//
//	int ch=fgetc(stdin);
//	//int ch=getchar();
//	printf("%c\n", ch);
//
//
//	return 0;
//}

//int main()
//{
//	FILE*pf=fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//读
//	int ch=fgetc(pf);
//	printf("%c\n", ch);
//	 ch = fgetc(pf);
//	printf("%c\n", ch);
//	 ch = fgetc(pf);
//	printf("%c\n", ch);
//
//	 ch = fgetc(pf);
//	printf("%d\n", ch);
//
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//文件的拷贝
//int main()
//{
//	FILE* pfread= fopen("data.txt", "r");
//	if (pfread == NULL)
//	{
//		perror("fopen-1");
//		return 1;
//	}
//	FILE*pfwrite=fopen("data2.txt", "w");
//	if (pfwrite == NULL)
//	{
//		perror("fopen-1");
//		fclose(pfread);
//		pfread = NULL;
//		return 1;
//	}
//	//读，写
//	int ch = 0;
//	while ((ch = fgetc(pfread)) != EOF)
//	{
//		fputc(ch,pfwrite);
//	}
//
//
//	fclose(pfread);
//	pfread = NULL;
//	fclose(pfwrite);
//	pfwrite = NULL;
//	return 0;
//}
//
//
//
//int main()
//{
//	FILE*pf=fopen("data.txt", "w");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//写一行
//	fputs("hello world\n", pf);
//	fputs("hehe\n", pf);
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}




//int main()
//{
//	FILE* pf = fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	char arr[20] = "xxxxxxxxxxxxxxxxxx";
//	fgets(arr, 20, pf);
//	printf("%s\n", arr);
//
//	fgets(arr, 20, pf);
//	printf("%s\n", arr);
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//struct S
//{
//	int n;
//	float f;
//	char arr[20];
//};
//
//int main()
//{
//	struct S s = { 100,3.14f,"zhangsan" };
//	FILE* pf = fopen("data.txt", "w");
//		if (pf == NULL)
//		{
//			perror("fopen");
//			return 1;
//		}
//
//		//写
//		fprintf(pf,"%d %f %s", s.n, s.f, s.arr);
//		//fprintf(stdout, "%d %f %s", s.n, s.f, s.arr);
//
//		fclose(pf);
//		pf = NULL;
//	return 0;
//}

//struct S
//{
//	int n;
//	float f;
//	char arr[20];
//};
//
//int main()
//{
//	struct S s = { 0};
//	FILE* pf = fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//读
//	fscanf(pf,"%d %f %s", &(s.n), &(s.f), s.arr);
//	printf("%d %f %s", s.n, s.f, s.arr);
//	
//
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//struct S
//{
//	int n;
//	float f;
//	char arr[20];
//};
//
//int main()
//{
//	struct S s = { 100,3.14f,"zhangsan"};
//	char arr[30] = { 0 };
//
//	sprintf(arr,"%d %f %s",s.n,s.f,s.arr);
//	printf("%s\n", arr);
//	
//	//从arr字符串提取格式化的数据
//	struct S t = { 0 };
//	sscanf(arr,"%d %f %s", &(t.n), &(t.f), t.arr);
//	printf("%d %f %s\n", t.n, t.f, t.arr);
//	return 0;
//} 


//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8 };
//	FILE* pf = fopen("data.txt", "wb");
//		if (pf == NULL)
//		{
//			perror("fopen");
//			return 1;
//		}
//		fwrite(arr,sizeof(int), 7, pf);
//
//		fclose(pf);
//		pf = NULL;
//
//
//	return 0;
//}

/*int main()
{
	int arr[10] = { 0 };
	FILE* pf = fopen("data.txt", "rb");
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}
	fread(arr, sizeof(int), 7, pf);
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d\n", arr[i]);
	}
	fclose(pf);
	pf = NULL;


	return 0;
}*/ 

//int main()
//{
//	int arr[10] = { 0 };
//	FILE* pf = fopen("data2.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//读
//	int ch = fgetc(pf);
//	printf("%c\n", ch);
//
//	fseek(pf, 5, SEEK_CUR);
//
//
//	//fseek(pf,6,SEEK_SET);
//	//fseek(pf,-7,SEEK_END);
//	 ch=fgetc(pf);
//	printf("%c\n", ch);
//
//
//	fclose(pf);
//	pf = NULL;
//
//
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 0 };
//	FILE* pf = fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//读
//	int ch = fgetc(pf);
//	printf("%c\n", ch);
//
//	fseek(pf, 5, SEEK_CUR);
//
//
//	//fseek(pf,6,SEEK_SET);
//	//fseek(pf,-7,SEEK_END);
//	ch = fgetc(pf);
//	printf("%c\n", ch);
//
//	int pos = ftell(pf);
//	printf("%d\n", pos);
//
//	rewind(pf);
//
//	ch = fgetc(pf);
//	printf("%c\n", ch);
//
//
//	fclose(pf);
//	pf = NULL;
//
//
//	return 0;
//}


#include <windows.h>
//VS2019 /22  WIN11环境测试
//int main()
//{
//	FILE* pf = fopen("test.txt", "w");
//	fputs("abcdef", pf);//先将代码放在输出缓冲区
//	printf("睡眠10秒-已经写数据了，打开test.txt⽂件，发现⽂件没有内容\n");
//	Sleep(10000);
//	printf("刷新缓冲区\n");
//	fflush(pf);//刷新缓冲区时，才将输出缓冲区的数据写到⽂件（磁盘）
//	//注：fflush 在⾼版本的VS上不能使⽤了
//	printf("再睡眠10秒-此时，再次打开test.txt⽂件，⽂件有内容了\n");
//	Sleep(10000);
//	fclose(pf);
//	//注：fclose在关闭⽂件的时候，也会刷新缓冲区
//	pf = NULL;
//	return 0;
//}
//extern int Add(int x, int y);
//extern int g_val;
//int main()
//{
//	
//	printf("%d\n", Add(2,3));
//	return 0;
//}


////vsc
//#include<stdio.h>
//
//
//#define M 100
//int main()
//{
//	int m = M;
//	int a = 10;
//	int b = 20;
//	int c = a + b;
//	printf("c=%d\n", c);
//	//this if....
//	return 0;
//}